// pages/signin/signin.js
wx.cloud.init()
const db = wx.cloud.database()
const defaultAvatarUrl = '/icon/default-avatar.png'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    avatarUrl: defaultAvatarUrl,
    nickname: '',
    currentYear: new Date().getFullYear()
  },

  onLoad() {
    wx.hideHomeButton()
  },

  // 选择头像
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail 
    this.setData({
      avatarUrl,
    })
  },

  // 输入昵称
  onInputNickname(e) {
    this.setData({
      nickname: e.detail.value
    })
  },

  // 微信登录
  wxLogin() {
    if (!this.data.avatarUrl || this.data.avatarUrl === defaultAvatarUrl) {
      wx.showToast({
        title: '请选择头像',
        icon: 'none'
      })
      return
    }

    if (!this.data.nickname.trim()) {
      wx.showToast({
        title: '请输入昵称',
        icon: 'none'
      })
      return
    }

    wx.showLoading({
      title: '登录中...',
    })

    // 获取用户openid
    wx.cloud.callFunction({
      name: 'login',
      success: res => {
        const openid = res.result.openid
        // 查询用户是否已注册
        db.collection('test').where({
          _openid: openid
        }).get().then(res => {
          if (res.data.length === 0) {
            // 新用户，添加到数据库
            db.collection('test').add({
              data: {
                username: this.data.nickname,
                avatar: this.data.avatarUrl,
                createTime: new Date()
              }
            }).then(res => {
              wx.setStorageSync('id', res._id)
              wx.setStorageSync('name', this.data.nickname)
              wx.setStorageSync('avatar', this.data.avatarUrl)
              wx.hideLoading()
              wx.switchTab({
                url: '../userConsole/userConsole'
              })
            }).catch(err => {
              console.error('注册失败：', err)
              wx.hideLoading()
              wx.showToast({
                title: '注册失败，请重试',
                icon: 'none'
              })
            })
          } else {
            // 更新用户信息
            db.collection('test').doc(res.data[0]._id).update({
              data: {
                username: this.data.nickname,
                avatar: this.data.avatarUrl,
                updateTime: new Date()
              }
            }).then(() => {
              wx.setStorageSync('id', res.data[0]._id)
              wx.setStorageSync('name', this.data.nickname)
              wx.setStorageSync('avatar', this.data.avatarUrl)
              wx.hideLoading()
              wx.switchTab({
                url: '../userConsole/userConsole'
              })
            }).catch(err => {
              console.error('更新用户信息失败：', err)
              wx.hideLoading()
              wx.showToast({
                title: '登录失败，请重试',
                icon: 'none'
              })
            })
          }
        }).catch(err => {
          console.error('查询用户失败：', err)
          wx.hideLoading()
          wx.showToast({
            title: '登录失败，请重试',
            icon: 'none'
          })
        })
      },
      fail: err => {
        console.error('调用登录云函数失败：', err)
        wx.hideLoading()
        wx.showToast({
          title: '登录失败，请重试',
          icon: 'none'
        })
      }
    })
  },

  // 显示隐私条款
  showPrivacyTerms() {
    wx.showModal({
      title: '用户协议和隐私条款',
      content: '感谢您使用52记账！\n\n1. 我们重视您的个人信息和隐私保护\n2. 我们只会收集必要的用户信息\n3. 您的记账数据将安全加密存储\n4. 未经您的同意，我们不会向第三方分享您的信息\n\n继续使用表示您同意我们的用户协议和隐私政策。',
      showCancel: false,
      confirmText: '我知道了',
      confirmColor: '#2b85e4'
    })
  }
})